/*
  订单页功能分析：
    1.购物车点击结算跳转到订单页 -ok
      - 选中商品数量大于0.才允许结算 -ok
    2.订单页功能
      - 选择地址 ：API/开放接口 /收货地址 /wx.chooseAddress -ok
      - 显示订单列表信息 -ok
      - 提交订单 -ok
        - 判断你是否已登录：判断本地存储里面是否有token -ok
          - 已登陆：提交订单->下单付款->跳到个人中心页面 -ok
          - 未登录：跳转登录页提醒登陆
            - 传统：
              - 验证用户名是否存在 -ok
              - 注册 -ok
              - 登陆：登陆成功后端返回token->存到本地存储 -ok
            - 小程序
              - 授权登陆：微信账号登陆
    3.下单付款：
      - 下单付款后，把购物车里面的相关数据清除
      - 真实的付款：企业身份申请(营业执照副本、对公账号)-审批-交300认证费-api接口-付款功能
*/
const shopcartCtrl = require('../../utils/shopcartCtrl');
let {creatOrder} = require('../../api/orderApi');
// console.log(shopcartCtrl.getSelectGoods(),999)
Page({
  data:{
    address : null,//存放地址
    orderList : [],//订单列表
    total : 0,//总数量
    price : 0,//总价
  },
  onLoad() {
    this.getSelGoods();
    //假设：已登录
    // let userInfo = {uid:12321,token:213124};
    // wx.setStorageSync('userInfo', userInfo);
  },
  //设置地址
  setAddress() {
    //调用小程序的API设置地址:手机真机测试
    wx.chooseAddress({
      success: (res) => {
        console.log('地址信息：', res);
        this.setData({address: res});
        wx.setStorageSync('address', res);
      },
    })
  },
  //获取订单列表数据渲染页面
  getSelGoods() {
    let result = shopcartCtrl.getSelectGoods();
    let {total, price} = shopcartCtrl.getPriceCount();
    let address = wx.getStorageSync('address');
    this.setData({orderList:result,total, price,address})
    console.log('订单列表数据：', result);
  },
  //支付功能：假的支付
  goPay(){
    wx.showModal({
      title: '请支付',
      content: '测试功能，模拟支付',
      success (res) {
        if (res.confirm) {
          console.log('用户点击确定');
          //将购物车里面已经下单的数据，清除掉
          shopcartCtrl.rmOrderGoods();
          //跳转到个人页面
          wx.reLaunch({
            url: '/pages/mine/mine',
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
  //提交订单
  submitOrder() {
    //1.先获取本地存储的token信息
    let {token} = wx.getStorageSync('userInfo');
    // console.log(token);//如果token不为空：证明是已登陆状态
    //2.用token进行判断是否已登录
    if(token) {
      //登陆状态：提交订单
      console.log('准备提交订单');
      //1.拼接地址
      let {address,orderList} = this.data;
      let addressDetail = address.provinceName + address.cityName + address.countyName + address.detailInfo + ',收件人：' + address.userName;
      // console.log('收件人地址：',addressDetail);
      //2.拼接订单列表数据
      let goodsList = orderList.map(item => {
        return {
          goodsId : item.gid,
          price : item.gprice,
          image : item.gimgurl,
          count : item.gnum,
          name : item.gtitle
        }
      });
      // console.log('订单数据整理后：',goodsList);
      //3.整理准备要添加的订单数据
      let obj = {
        "goodsList":goodsList,
        "uid":wx.getStorageSync('userInfo').uid,
        "address":addressDetail,
        "phone":address.telNumber,
      };
      //4.发请求，把订单数据给后端
      creatOrder(obj).then(res => {
        console.log('订单添加结果：', res.data);
        if(res.data.code) {
          //添加订单成功，去支付
          this.goPay();
          
        }
      })
    }else{
      //未登录：提醒用户去登陆
      wx.showModal({
        title: '提示',
        content: '您还未登录，请跳转登录页登陆',
        success (res) {
          if (res.confirm) {
            console.log('用户点击确定');
            //跳转到登录页
            wx.navigateTo({
              url: '/pages/login/login',
            })
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
  }
  
})